home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
t_os
/
cons80
/
cons.doc
next >
Wrap
Text File
|
1993-11-30
|
12KB
|
256 lines
FM-TOWNS console emulator
cons30.com,cons30s.com,cons60.com,cons60s.com
copyright (c) 1992 by bye
☆高速コンソールエミュレーターへのお誘い
TOWNSにはTVRAMがありません。そのためテキスト表示は非常に低速
です。しかし,このコンソールエミュレーターを使用することにより,非常に高
速なコンソール環境を手に入れることができます。その速度は何とTVRAMを
持っているFMRや98を凌ぐ程です。
また,TOWNS特有の480ラインを生かして30行表示や60行表示もで
きます。
しかもプログラムサイズは3Kバイト以下! 例えば,あるツールを作ってい
る方で,「DOSコンソールの機能が欲しい」と思っている方はぜひsystem関数
でこのプログラムを呼び出してみてください。簡単に高速コンソール環境が手に
入ります。
高速コンソールエミュレーター。是非,使ってみてください。
☆概要
これは名前からも分かる通りコンソールエミュレーターです。ORICONやERICON
などと違い,TVRAMをエミュレートしていませんので,VzやRED2等を
動かすことはできませんが,通常のDOS汎用ソフトは動作します。
ORICONやERICONはTVRAMをエミュレートしていますので,例えTOWNSであっ
ても処理が負担となり,他のDOSマシンと比べてコンソールの速度が遅く,精
神衛生上,あまり良くありません。
このプログラムは,VRAMエミュレーターの限界を感じた私が,int 29h の
エミュレーションのみに的を絞り,高速化したものです。「これがコンーソール
エミュレーターか?」と,驚いてしまうような程,高速で,従来のように,スト
レスを感じることは無いと思います(速すぎて精神衛生上良くないという噂もあ
りますが)。
ただ,私のプログラム技術が未熟なため,多少無駄な処理をしているところが
あります。それは愛嬌だと思って許してやってください。これだけでも充分に高
速ですから....。
☆実行方法
とりあえず実行してみたい場合は,cons30.comを実行してください。間違って
もコンソール上から実行してはいけません。必ずTOWNS-OS上から実行してくださ
い。
なお,オプションはありません。殆どのコンソールエミュレーターが,そのコ
ンソール上で起動するプログラム名をオプションで指定できるのですが,私はそ
のような機能は必要ないと思い,省きました。常に c:\command.com をオプショ
ン無しで実行します。もし,どうしてもその機能が欲しいと思ったら,私まで連
絡してください。
実行すると,見慣れたコンソール画面になると思いますので,取り合えずディ
レクトリを見てください。そして,手頃なファイルをタイプしてみてください。
余りの速さに驚く筈です(心臓の弱い方は,精神安定剤を飲んでおいた方が身の
ためです。)。驚かなかったら,その人は鈍感か,他の高速DOSマシンも持っ
ている人です。
cons30.com 以外のファイルについても同様に実行してください。
コンソール上で,ネイティブプログラムを実行して,画面モードが変更されて
しまった場合は,焦らずにconsi.com をオプション無しで実行してください。多
分,画面モードが戻ると思います。
☆ファイルの説明
cons30.com ~30行版
cons30s.com ~30行でスムーススクロール版
cons60.com ~60行版
cons60s.com ~60行でスムーススクロール版
consi.com ~画面モードの初期化
cons.doc ~このファイル
consi.doc ~consi.com の説明ファイル
history.doc ~このプログラムの歴史が刻まれている(^_^;)
☆特徴
さて,速さを実感したところで,特徴を挙げたいと思います。
・TVRAMエミュレートを省いた高速処理
・ローカルスタックを使用した安全設計
・画面モード3(1024*512の16色画面)を使用して,FM-TOWNSの性能を活か
しきった30行表示を実現(おまけプログラムとして,縦を圧縮した60
行バージョンもある)
・オールアセンブラによる,3Kを切る小さいプログラムによって,大きな
プログラムも楽々起動
・おまけプログラムとして,まるでJTYPEやHELPER,TUGiな
どのようなスムーススクロールを行うバージョンも添付
☆性能
簡単なベンチマークテストを行いましたので,ここに書いておきます。テスト
対象は,フリーソフトウェアコレクション5の \taropyon\heat\doc\he386.doc
(88944bytes/2202lines)です。ORICON,ERICON,TUGiCON, はフリーソフトウェ
アコレクション4,ARiCON,JTYPE,HEat, はフリーソフトウェアコレクション
5に収録されているものです。それぞれコンソールモードに移って,typeコマン
ドでhe386.doc を最初から最後まで表示させた時の時間です。JTYPE の場合はス
クロール速度を最高速にして,スクロールが止まるまでの時間です。
参考までに,他のDOSマシンでの値も示しておきます。対象は,PC-9801 DS
2 +日電版 MS-DOS Ver 3.3C と,FMR-50 TX6+富士通版 MS-DOS Ver 3.1 L31で
す。これらの機種は,CPU速度に於いてはTOWNSと殆ど同じですので,何
らかの参考になると思います(80386SX-16MHzだったと思う)。
ORICON,ERICON,TUGiCON,ARiCONはその性質上, GVRAMを短い周期で書
き換えれば書き換える程,ちらつきが少なくなりますが,表示スピードは落ちま
す。逆にちらつきが多ければスピードは上がります。コンソールエミュレーター
は,必ずしもスピードのみを追求しているわけではありませんので,このベンチ
マークの結果はコンソールエミュレーターの性能を表しているわけではありませ
ん。その点は誤解しないようにしてください。このプログラムとJTYPE,HEat は
原理上,ちらつきは出ません。
──────────┬───────
ARiCON │ 1:00
ORICON │ 1:15
ERICON │ 1:09
TUGiCON │ 1:08
JTYPE │ 0:10
HEat │ 2:38
cons30.com │ 0:26
cons30s.com │ 5:03
MS-DOS *1 │ 0:38
MS-DOS *2 │ 0:37
──────────┴───────
* TOWNS はTOWNS 2 で計測
*1 PC-9801 DS2+MS-DOS Ver 3.3C
*2 FMR-50 TX6+MS-DOS Ver 3.1 L31
これだけでもこのプログラムの高速性が分かると思います。さすがに, JTYPE
はネイティブモードで最適化されていますので,勝てませんが。60行版の方が
書き込み量が少ないのか,多少(1~2秒)高速のようです。cons30s.com は,
流し読みできる速さなので,かなり低速です(わざと遅くしているので,計測の
意味は無いが)。
なお,このベンチマークは,結構ざつですので,計測方法によって違いが出ま
す。誤差は±3秒程度はあると考えてください。
☆制御コードについて
サポートしている制御コードは以下のものです。ただし,BEL とグラフィック
画面制御関係については,何も行っていません。
BEL,BS,HT,LF,VT,FF,CR,NAK,SYN,FS,GS,RS,VS
また,サポートしているエスケープシーケンスは以下のものです。
ESC[2J,ESC[pn;pn H,ESC[pn;pn f,ESC[PS;...;Ps m,
ESC[Pn A,ESC[Pn B,ESC[Pn C,ESC[Pn D
サポートしていないエスケープシーケンスについても,画面にゴミを出すよう
なことはありません(無視します)。
☆動作プログラムについて
基本的なエスケープシーケンスをサポートしましたので,殆どのDOS汎用ソ
フトは動作してしまいます。しかし,FM特有のエスケープシーケンスを使って
いるもの(FM系専用のもの)は,動かないでしょう。
一部(本当に一部)のコンソールBIOSをサポートしましたので,コンソー
ルBIOSを使用したプログラムで動作するものもあります。
☆制限
このプログラムで次のようなプログラムを実行しても,正常に動作しません。
・TVRAMに書き込みを行っているもの。
・コンソールBIOSを使用しているもの(例外有り)。
・表示画面が25行であることを前提としているもの。
・エスケープシーケンスを多用しているもの。
特に3項目目が要注意です。殆どのDOSマシンは,例えハイレゾであっても
表示画面は25行です。このプログラムは,25行が最終行ではないので,25
行が最終行であることを前提としたプログラムはうまく動きません(下5行が使
われないだけの場合もありますが。)。この手のプログラムは結構多いので,注
意してください。
☆おまけ
60行表示バージョンと,スムーススクロールバージョンもあります。気に
入ったものを使用してください。
それから,画面モードを設定するプログラムとして,consi.com も添付してお
きます。ネイティブモードプログラムなどを実行して,画面モードが変更されて
しまった時は consi.com をパラメータ無しで起動してください。コンソールの
画面モードに切り換えます。
☆言い訳
60行表示バージョンだと,速度が多少遅いような感じを受けるかもしれませ
ん。これは,command.com 内のtypeやdir コマンドの表示が遅いからです。もし
も,もっと速い表示をお望みなら,同様の処理をするプログラムを使用してくだ
さい。(従来のコンソールエミュレーターの場合コンソール処理の方が遅かった
けど,これは,コンソール処理が速いので,内部コマンドの遅さが分かってしま
うのです。)
また,人間は,画面下に現れた文字が画面から消えるまでの長さで,速さを実
感しているようなので,60行表示は30行表示より遅く見えます。実際には,
同じ程度のスピードですので,60行愛好者の方も御安心ください。
それから,絶対に2重起動は行わないでください。起動しても現在は問題あり
ませんが,将来,暴走する可能性もあります。
☆著作権その他
このプログラムは無保証です。使用は,各自使用者の責任の下で行ってくださ
い。このプログラムの使用によって如何なる損害が生じたとしても私は一切責任
を負わないこととします。
このプログラムの著作権は作者である私が所持します。原則として,使用は自
由です。ただ,このプログラムが誤動作するようなことがあった場合は,できる
だけ,使用を中止して,私まで連絡してください。できる限り対処したいと思い
ます。ただしこれは改良を保証するものではありません。
配付,転載ともに特に制限はしませんが,できるだけ無料で行ってください。
営利を目的としてこのプログラムを配付/販売することを禁じます。また,NE
T等を用いて不特定多数の人に配付する場合や,他のソフトに組み込んで配付す
る場合は,できるだけ連絡をください。(どのくらい使われているか,把握して
おきたいため)
☆バグについて
もし,このプログラムがうまく動かない場合は,私まで連絡してくれると嬉し
いです。改良する保証はありませんが,できるだけ対処します。
☆ソースリストについて
一応非公開とします(コーディングが下手なのがばれるから?)。もし,動作
に興味がある方がいましたら(多分いないだろうな),連絡してくれれば,何ら
かの対処はすると思います。
☆最後に
スムーススクロール版は,非常にスクロールが低速ですので,精神衛生上良く
ないかもしれません。ただ,心が落ち着くので,急ぎ過ぎている現実から離れて
ゆったりした気分でコンソールを操るのも,面白いかもしれません。
60行バージョンは,内蔵の8*8フォントの都合で,cとoの判別がとって
も難しいです。なお,60行表示でも漢字は表示できますが,おまけ程度と考え
てください。60行表示で日本語の文章を読んだら,死にます。
NIF VFB02611 伊藤哲史(bye)
☆雑感
このプログラムで,一応コンソール関係に関してもTOWNSが誇れる性能で
あることが証明できたと思います。打倒98!,打倒FMR!,を目指して作っ
たものの,出来上がってみると,98やFMRよりも,かなり高速になってしま
いました。従来のコンソールエミュレーターが,他機種に比べて,如何に低速で
あったかが分かります(処理上仕方が無いのだが)。
ただ,スクリーンエディタが動かないのは辛いところで,実際に私がプログラ
ム開発では使用しないのが現状です。言語処理系は殆どがこのプログラムでも動
作するのですが,開発に絶対必要なスクリーンエディタが動きません。Vzの場
合,ソースが公開されていますので,GVRAMしか使用しないように改良して
くれないかなぁ~~などと思っています。リアルモードからのGVRAM書き込
みでも,この程度のスピードは出ますので,わざわざコンソールエミュレーター
を通して表示するのではなく,直接GVRAMに書き込んでしまった方が速いと
思うのですが...。誰かやりません? スクリーンエディタさえ動けば,遅い
コンソール環境ともお別れなのですが。